perm filename DEMON.GC[AID,LSP]  blob 
sn#490817 filedate 1980-01-01 generic text, type C, neo UTF8
 
COMMENT ā   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	(DECLARE (FASLAPSETUP/| T))
C00003 00003	(cond ((status feature newio)
C00005 ENDMK
Cā;
(DECLARE (FASLAPSETUP/| T))
; This routine computes an estimate of the size of the Maclisp lowseg
; in pages.
(LAP CORESIZE SUBR)
(ARGS CORESIZE (NIL . 0))
;(MOVE TT (- D10NAM 133))	;move tt,hixm
(MOVE TT 44)			;jobhrl
(IDIVI TT 512.)
(ADDI TT 1)
(JSP T FXCONS)
(POPJ P)
NIL
(cond ((status feature newio)
       (setq gc-overflow 'gc-overflow-daemon))
      (t
       (SSTATUS INTERRUPT 13. 'GC-OVERFLOW-DAEMON) ))
(DECLARE (SPECIAL %%GC-VERBOSE%% %%GC-TRACE%%) (*EXPR CORESIZE))
 
(DECLARE (FLONUM %%GC-SEGSIZE%%))
(DECLARE (SPECIAL %%GC-SEGSIZE%% %%GC-CORESIZE%%))
(SETQ %%GC-VERBOSE%% NIL %%GC-SEGSIZE%% 1024.0 %%GC-CORESIZE%% 
      (COND ((OR (STATUS FEATURES ONESEGMENT)
		 (STATUS FEATURES TOPS-20))
	     512.0)
	    (T 256.0))))
(SETQ %%GC-TRACE%% NIL)
(DEFUN GC-OVERFLOW-DAEMON (X) 
 (and %%gc-trace%%
  (progn
   (TERPRI)(PRINC '|In the overflow demon, dealing with |)
   (princ x)(terpri)))
  ((LAMBDA(Q)
       (APPLY 'ALLOC
	      (LIST (LIST X (LIST NIL Q NIL)))) 
       (AND %%GC-VERBOSE%%
     	    ((LAMBDA(āR)
       		(TERPRI)
       		(PRINC '|...increasing |)
       		(PRINC X)
       		(PRINC '| GCMAX TO |) (PRINC Q)(PRINC '| WORDS...|)
       		(TERPRI)) NIL)))
   (+ (FIX (*$ (//$ (-$ %%GC-CORESIZE%% (FLOAT (CORESIZE))) %%GC-CORESIZE%%)  
	       (FLOAT %%GC-SEGSIZE%%)))
      (CADR (GET (CONS NIL (ALLOC T))
	      X)))))